package com.jt.controller;/**
 * @Author 金帮嘉诚 @Date 2021-08-06 星期五 21:44
 */
/*本类用于测试*/

import com.jt.pojo.Item;
import com.jt.service.ItemService;
import com.jt.vo.ItemVO;
import com.jt.vo.PageResult;
import com.jt.vo.SysResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

/**
 * 知识点
 */
@RestController
@CrossOrigin
@RequestMapping("/item")
public class ItemController {

    @Autowired
    private ItemService itemService;

    /**
     * 商品列表展现
     * 请求路径: /item/getItemList?query=&pageNum=1&pageSize=10
     * 请求类型: get
     * 请求参数: 使用pageResult对象接收
     * 参数 query pageNum pageSize
     * 返回值类型 SysResult对象
     */
    @GetMapping("/getItemList")
    public SysResult getItemList(PageResult pageResult) {
        pageResult = itemService.getItemList(pageResult);
        return SysResult.success(pageResult);
    }


    /**
     * 商品状态修改
     * 请求路径: /item/updateItemStatus
     * 请求类型: put
     * 请求参数: 使用对象接收
     * 参数 id status
     * 返回值类型 SysResult对象
     */
    @PutMapping("/updateItemStatus")
    public SysResult updateItemStatus(@RequestBody Item item) {
        Integer updateFlag = itemService.updateItemStatus(item);
        if (updateFlag == 1) {
            return SysResult.success(updateFlag);
        }
        return SysResult.fail();
    }

    /**
     * 商品数据删除
     * 请求路径: /item/deleteItemById
     * 请求类型: delete
     * 请求参数:id
     * 返回值类型 SysResult对象
     */
    @DeleteMapping("/deleteItemById")
    public SysResult deleteItemById(Integer id) {
        Integer deleteFlag = itemService.deleteItemById(id);
        if (deleteFlag >= 2) {
            return SysResult.success(deleteFlag);
        }
        return SysResult.fail();
    }

    /**
     * 用户新增业务接口
     * 请求路径: http://localhost:8091/item/saveItem
     * 请求类型: post
     * 前端传递参数分析:ItemVo对象,其成员属性:
     * Item 商品基本信息对象封装
     * ItemDesc 商品详情信息
     * ItemParam 商品参数信息  时间关系 暂不实现
     * <p>
     * 返回值类型 SysResult对象
     */
    @PostMapping("/saveItem")
    public SysResult saveItem(@RequestBody ItemVO itemVO) {
        Integer saveFlag = itemService.saveItem(itemVO);
        if (saveFlag == 1) {
            return SysResult.success(saveFlag);
        }
        return SysResult.fail();
//        return null;
    }

    /**
     * 判断是否存在item
     */
    @GetMapping("/{id}")
    public SysResult getItemById(@PathVariable Integer id) {
        Item item = itemService.getItemById(id);
        if (item != null) {
            return SysResult.success(item);
        }
        return SysResult.fail();
    }

    /**
     * 业务:更新item
     * url:/updateItem
     * 请求类型:put
     * 参数 item
     * 返回值SysResult
     */
    @PutMapping("/updateItem")
    public SysResult updateItem(@RequestBody Item item) {
        System.out.println(item.getPrice());
        Integer updateItem = itemService.updateItem(item);
        if (updateItem.equals(1)) {
            return SysResult.success(updateItem);
        }
        return SysResult.fail();
    }


}
